package BinaryTree;
class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        if(p == null && q == null) return true;
        if((p == null && q != null )||(p != null && q == null)){
            return false;
        }
        if(p.val != q.val) return false;
        return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);
    }

    public boolean isSubtree(TreeNode root, TreeNode subRoot) {
        if(root == null || subRoot == null) return false;
        return isSameTree(root,subRoot) || isSubtree(root.left,subRoot) ||
                isSubtree(root.right,subRoot);
    }
}

